home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
tex
/
tex31
/
texbin.zoo
/
readme-e.inf
< prev
next >
Wrap
Text File
|
1991-07-19
|
18KB
|
428 lines
Info file: readme-e.inf, -*-Text-*-
produced by texinfo-format-buffer
from file: readme-e.tex
This file documents a TeX 3.1 and METAFONT 2.7 implementation for the
Atari ST based on the WEB2C kit 5.8a from Karl Berry.
Copyright (C) 1990,1991 Frank Ridderbusch
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions.
Preface
=======
If you have already read earlier versions of this readme file, you can
directly turn to the section "Dynamic memory allocation".
There is one important modification, I made, that I would like to
mention just at the beginning. There are *no* files
`initex.ttp' or `inimf.ttp' any longer, as there have been in
earlier versions. I have merged the functions which are unique to
`initex.ttp' or `inimf.ttp' into one executable (no big deal,
only changing some defines). Therefore only the files `tex.ttp' and
`mf.ttp' are in the archive. The specific `initex' or
`inimf' functions (dumping) are selected by a commandline option.
(See section `Installation and Usage')
General Remarks
===============
This archive contains executables for the Atari ST. All executables
were generated from the WEB and the WEB2C sources version 5.8a, which
Karl Berry announced and released in a TeXhax digest, which appeared
on my news site during November 1990.
The Atari executables were first compiled with the GNU C compiler
v1.37.1 running in an Un*x cross-compiling environment. The resulting
objects were then linked with the C-library (at patchlevel 58), which
J.R.Bammi and E.R.Smith put together (Thanks to both of them for their
good work). Later, after some additional minor changes, I recompiled the
C sources with GCC v1.38 and maximum optimization at home on my ST,
which is equipped with 2,5 meg. After obtaining GCC v1.40, the final
recompilation took place with this version. The executables are
currently linked with the library (version 8) from E.R.Smith, which he
build for MiNT, his multitasking TOS extension. Additionally the archive
contains a BigTeX version with very large buffers (for those of you,
who have a Mega 4 ST and use very large macro packages).
If you don't have a cross compiling environment and want to recompile
the sources, you can just as well convert the WEB sources to C on your
local Un*x box and then carry the C sources home. If you want to do
this, it a good idea to decrease the constant `MAXLINES' to `1000' in
the file `src-5.8a/web2c/splitup.c'. After that, you should be able to
compile all files.
Implementation Details
======================
The files from the WEB2C kit required only very minor changes, mostly
things concerning the slash as a path separator opposed to the backslash
the Atari uses. TeX and METAFONT both discard any `\r' (Carriage Return)
character before a `\n' (Newline) in the input of normal tex files (The
everlasting difference between Un*x and other systems; `\n' versus
`\r\n' as line separators). I also modified the programs `pltopf' and
`vptovf' to ignore any `\r' characters. If you encounter any problems
with error messages about illegal character in the input file, try at
first to remove any `\r' characters before you investigate further. It
should be trivial to write a small utility, which removes all `\r'
characters from an input file.
TeX and METAFONT both passed the trip and the trap tests on the Atari.
METAFONT doesn't have any window support on the ST. (If someone would
write a window interface for the ST, I would be very interested.) I
don't mean a GEM interface with this remark. METAFONT has a
rudimentary window interface, to display proof mode character on
screen. The WEB2C kit provides support for X11, X10 and some others.
All executables will open any file in binary mode.
Installation and Usage
======================
The complete TeX and METAFONT environment is controlled via
environment variables ala Un*x. On my Atari I've set the following
values (as an example under gulam):
# All TeX font metric files are here.
setenv TEXFONTS f:\tex\texinput\tfm
# The dumped format files are found here.
setenv TEXFORMATS f:\tex\formats
# search paths for TeX input files
setenv TEXINPUTS .;f:\tex\texinput\latex\styles;f:\tex\texinput\macros
# The TeX string pool file is found here.
setenv TEXPOOL f:\tex
# The Metafont string pool file is found here.
setenv MFPOOL f:\metafont\mfbases
# The dumped base file is found here.
setenv MFBASES f:\metafont\mfbases
# search paths for Metafont input files
setenv MFINPUTS .;f:\metafont\mfinputs\cmr
(For a detailed description the above environment variables see the
manual pages in the file `manpages.lzh', also available from the atari
archive at terminator.)
The executables don't care about slashes or backslashes as path
separators. Both can be used. Don't mind, that the string pool files are
called `*.poo' instead of `*.pool''. The executables have no problems to
find them.
The `initex' or `inimf' specific functions (dumping) are selected by
giving the option `-i' as the last argument. Therefore to create the
`plain.fmt' you have to issue the following commandline (assuming the
environment variables are set correctly):
tex 'plain \dump' -i
The same applies to METAFONT. As a sidenote, the `plain.fmt' file from
the BigTeX is about 110 KB larger than the one from the normal TeX,
which is about 168 KB in size. The absolute sizes vary depending on the
sizes of the internal buffers.
Also the utility programs may search along some path for some files set
by an environment variable. So, if one program complains about a file,
that it can't find although it is in the current directory, prefix the
filename with `./' ot `.\'.
Dynamic Memory allocation for TeX
=================================
The TeX versions dated later than March 2nd, 1991 have a dynamic
memory allocation scheme for most of the large arrays. The startup
message reflects this (TeX Version 3.1t2var). There are certainly better
schemes, to achieve dynamic allocation, but I found, that the chosen
approach required only very minimal changes to the source files.
Originally the header file `texd.h' (part of the sources) contained some
defines for the values of `memmax', `memtop', `triesize' etc. I changed
these defines into variables and also changed the dependent array
declarations into pointer declarations. Now, before the main TeX code
gets control, these pointer are initialized with malloced memory. Since
I don't know, if there are any places in the code, which assume that
uninitialized memory is cleared, the flag, which prevents TOS from
clearing the whole TPA should not be set. This is to make really sure,
that malloced memory is cleared. If you have a TOS version earlier than
1.4, you don't have to bother with this, since these version clear the
whole memory with every program launch.
To be able to modify the size of the arrays in the executables, I
borrowed the idea of the programs `fixstk.ttp' and `printstk.ttp', which
come with the binary distribution of GNU-C for the ST. These two
programs allow the modification or the display of the variable
`stksize', which determines, how the stack and the memory is used by a
program.
TeX-CONF.TTP
============
I therefore wrote a program called `tex-conf.ttp', which allows the
modification and the display of TeX's main configuration values. This
works only if the executable is unstripped, because the information,
which is present in the symbol table is used to locate the variables in
the executable. Therefore you should never strip the TeX or METAFONT
executables, or, if you do, then keep unstriped versions around.
A sample output of `tex-conf.ttp